// 引入查询工具函数
const doSql = require("../utils/doSql")
const query = doSql.query;
const update = doSql.updata;
const insert = doSql.insert;
const v2 = require("../utils/verify2")

// 查询所有作品
exports.getAllWorks = async (req, res) => {
    try {
        const sql = `select * from works where exist = 1`;
        // 注意：req 对象上的 user 属性，是 Token 解析成功，express-jwt 中间件帮我们挂载上去的
        let result = await query(sql)
        res.sd(result);
    } catch (err) {
        res.sdErr(err);
    }
}

// 删除作品
exports.delWork = async (req, res) => {
    if (v2(req, ["work_id"], res) !== 0) {
        return;
    }
    let id = req.body.work_id;
    try {
        const sql = `update works set exist = 0 where id =?`;
        // 注意：req 对象上的 user 属性，是 Token 解析成功，express-jwt 中间件帮我们挂载上去的
        let result = await update(sql, [id])
        res.sd(result);
    } catch (err) {
        res.sdErr(err);
    }
}


// 修改作品
exports.updateWork = async (req, res) => {
    if (v2(req, ["work_id", "name", "descr", "imgUrl", "gitAddr"], res) !== 0) {
        return;
    }
    let id = req.body.work_id;
    let name = req.body.name;
    let descr = req.body.descr;
    let imgUrl = req.body.imgUrl;
    let gitAddr = req.body.gitAddr;
    try {
        const sql = `update works set name=?, descr=?, imgUrl=?, gitAddr=?  where id =?`;
        // 注意：req 对象上的 user 属性，是 Token 解析成功，express-jwt 中间件帮我们挂载上去的
        await update(sql, [name, descr, imgUrl, gitAddr, id])
        res.sd("ok");
    } catch (err) {
        res.sdErr(err);
    }
}

// 添加作品
exports.addWork = async (req, res) => {
    if (v2(req, [ "name", "descr", "imgUrl", "gitAddr"], res) !== 0) {
        return;
    }
    let name = req.body.name;
    let descr = req.body.descr;
    let imgUrl = req.body.imgUrl;
    let gitAddr = req.body.gitAddr;
    try {

        const sql = `insert into works set ?`;
        // 注意：req 对象上的 user 属性，是 Token 解析成功，express-jwt 中间件帮我们挂载上去的
        await insert(sql, { name, descr, imgUrl, gitAddr });
        res.sd("ok");
    } catch (err) {
        res.sdErr(err);
    }
}